package com.ruoyi.system.service;


import com.ruoyi.system.domain.Advertisement;
import com.ruoyi.system.domain.vo.*;

import java.util.List;

/**
 * 广告Service接口
 * 
 * @author ruoyi
 * @date 2023-04-26
 */
public interface IAdvertisementService 
{
    /**
     * 查询广告
     * 
     * @param advertisementId 广告主键
     * @return 广告
     */
    public Advertisement selectAdvertisementByAdvertisementId(Integer advertisementId);

    /**
     * 查询广告弹窗消息
     *
     * @param advertisementId 广告主键
     * @return 广告
     */
    public AdvertisementRmarkDetail selectAdvertisementRemarkByAdvertisementId(Integer advertisementId);
    /**
     * 查询vip广告
     *
     * @param advertisementId 广告主键
     * @return 广告
     */
    public AdvertisementVipDetail selectVipAdvertisementByAdvertisementId(Integer advertisementId);

    /**
     * 查询广告列表
     * 
     * @param advertisement 广告
     * @return 广告集合
     */
    public List<Advertisement> selectAdvertisementList(Advertisement advertisement);

    /**
     * 新增广告
     * 
     * @param advertisement 广告
     * @return 结果
     */
    public int insertAdvertisement(Advertisement advertisement);

    /**
     * 修改广告
     * 
     * @param advertisement 广告
     * @return 结果
     */
    public int updateAdvertisement(Advertisement advertisement);

    /**
     * 批量删除广告
     * 
     * @param advertisementIds 需要删除的广告主键集合
     * @return 结果
     */
    public int deleteAdvertisementByAdvertisementIds(Integer[] advertisementIds);

    /**
     * 删除广告信息
     * 
     * @param advertisementId 广告主键
     * @return 结果
     */
    public int deleteAdvertisementByAdvertisementId(Integer advertisementId);


    /**
     * 查询vip广告列表
     *
     * @param advertisement 广告
     * @return 广告集合
     */
    public List<AdvertisementVipVo> selectVipAdvertisementList(Advertisement advertisement);


    /**
     * 查询当前州的广告总数量
     *
     * @param advertisement 广告
     * @return 广告集合
     */
    public AdvertisementCount getAdvertisementCount(Advertisement advertisement);

    /**
     * 查询推荐广告列表
     *
     * @param advertisement 广告
     * @return 广告集合
     */
    public List<AdvertisementRecommendVo> getRecommendList(Advertisement advertisement);

    /**
     * 查询全部广告列表
     *
     * @param advertisement 广告
     * @return 广告集合
     */
    public List<AdvertisementAllListVo> getAllList(Advertisement advertisement);

}
